package com.sromku.bugsnag.providers;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Image;
import com.sromku.bugsnag.model.Column;
import com.sromku.bugsnag.model.ColumnInfo;
import com.sromku.bugsnag.model.Error;
import com.sromku.bugsnag.preferences.PreferencesManager;
import com.sromku.bugsnag.utils.Utils;
public class ErrorsLabelProvider implements ITableLabelProvider {
@Override
public void addListener(ILabelProviderListener listener) {
}
@Override
public void dispose() {
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void removeListener(ILabelProviderListener listener) {
}
@Override
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
@Override
public String getColumnText(Object element, int columnIndex) {
ColumnInfo columnInfo = PreferencesManager.getSelectedColumns().get(columnIndex);
return getColumnText(element, columnInfo);
}
public String getColumnText(Object element, ColumnInfo columnInfo) {
Error error = (Error) element;
Column column = columnInfo.getColumn();
String[] classLocation = error.where.split(":");
String clz = "";
Integer line = -1;
if (classLocation.length > 1) {
clz = classLocation[0];
try {
line = Integer.valueOf(classLocation[1]);
}
catch (Exception e) {
}
} else {
clz = classLocation[0];
}
switch (column) {
case AFFECTED_USERS:
return String.valueOf(error.affectedUsers);
case APP_VERSION:
return String.valueOf(error.appVersions);
case CLASS:
return clz;
case COMMENTS:
return String.valueOf(error.comments);
case CREATED_DATE:
return Utils.toDate(error.firstReceived);
case EXCEPTION:
return String.valueOf(error.exception);
case IS_RESOLVED:
return String.valueOf(error.isResolved);
case LAST_DATE:
return Utils.toDate(error.lastReceived);
case LOCATION:
return "line: " + line;
case OCCURRENCES:
return String.valueOf(error.occurrences);
case RELEASE_STAGES:
return String.valueOf(error.releaseStages);
case SEVERITY:
return error.severity;
case MESSAGE:
return error.message;
default:
break;
}
return "";
}
}